<!DOCTYPE html>
<title>Fully exit fullscreen with two elements on stack and iframe</title>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script src="../trusted-click.js"></script>
<script src="fully-exit-fullscreen.js"></script>
<div id="log"></div>
<div>
    <iframe allowfullscreen></iframe>
</div>
<script>
async_test(function(t)
{
    var iframe = document.querySelector("iframe");
    var iframeDocument = iframe.contentDocument;
    var iframeBody = iframeDocument.body;
    var div = iframe.parentNode;
    trusted_request(t, div);
    document.onfullscreenchange = t.step_func(function()
    {
        assert_equals(document.fullscreenElement, div);
        assert_equals(iframeDocument.fullscreenElement, null);
        trusted_request(t, iframeBody, iframeBody, iframe.getBoundingClientRect());
        document.onfullscreenchange = null;
        iframeDocument.onfullscreenchange = t.step_func(function()
        {
            assert_equals(document.fullscreenElement, iframe);
            assert_equals(iframeDocument.fullscreenElement, iframeBody);
            trusted_click(t, fully_exit_fullscreen.bind(null, iframeDocument), iframeBody, iframe.getBoundingClientRect());
            iframeDocument.onfullscreenchange = null;
            document.onfullscreenchange = t.step_func(function()
            {
                assert_equals(document.fullscreenElement, null);
                assert_equals(iframe.contentDocument.fullscreenElement, null);
                t.done();
            });
        });
    });
});
</script>
